package tag35_28_08.map.aufgabe;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeMap;

public class TestMap {

	public static void main(String[] args) {

		Auto a1 = new Auto(0, "VW Golf");
		Auto a2 = new Auto(1, "VW Polo");
		Auto a3 = new Auto(2, "BMW Z4");
		Auto a4 = new Auto(3, "Audi TT");
		Auto a5 = new Auto(4, "Opel Corsa");
		List<Auto> listAuto = new ArrayList<Auto>();
		listAuto.add(a1);
		listAuto.add(a2);
		listAuto.add(a3);
		listAuto.add(a4);
		listAuto.add(a5);
		print(listAuto);
		
		System.out.println("-----------------------------------------------");
		
		Besitzer b1 = new Besitzer("Alex", "Schwarz");
		Besitzer b2 = new Besitzer("Max","Weiss");
		Besitzer b3 = new Besitzer("Max","Weiss");
		Besitzer b4 = new Besitzer("Peter","Grau");
		Besitzer b5 = new Besitzer("Peter","Grau");
		Set<Besitzer> setBezitzer = new HashSet<Besitzer>();
		setBezitzer.add(b1);
		setBezitzer.add(b2);
		setBezitzer.add(b3);
		setBezitzer.add(b4);
		setBezitzer.add(b5);
		print(setBezitzer);
		
		System.out.println("-----------------------------------------------");
		
		HashMap<Auto, Besitzer> verbindung = new HashMap<Auto, Besitzer>();
		verbindung.put(a1, b1);
		verbindung.put(a2, b2);
		verbindung.put(a3, b3);
		verbindung.put(a4, b4);
		verbindung.put(a5, b5);
		System.out.println(verbindung);
		
//		printMap(verbindung);
		
		TreeMap<Auto, Besitzer> treeVer = new TreeMap<Auto, Besitzer>();
		treeVer.put(a1, b1);
		treeVer.put(a2, b2);
		treeVer.put(a3, b3);
		treeVer.put(a4, b4);
		treeVer.put(a5, b5);
//		System.out.println(treeVer);
		
		printMap(treeVer);
	}
	
	static void printMap(TreeMap<Auto, Besitzer> treeVer){
		
		for (Iterator it = treeVer.keySet().iterator(); it.hasNext();) {
			Auto clave = (Auto) it.next();
			Besitzer valor = treeVer.get(clave);
			System.out.println(clave + " " + valor);
		}
		
	}
	
	static void print(Collection coll){
		for (Object object : coll) {
			System.out.println(object);
		}
	}

}
